﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//importamos
using System.Data.Entity.ModelConfiguration;
using CredisysTriunfadores.BusinessEntites.Recursos;
using System.ComponentModel.DataAnnotations.Schema;

namespace CredisysTriunfadores.Repository.Mapping
{
    public class SocioMap:EntityTypeConfiguration<Socio>
    {
        public SocioMap()
        {
            //primary key y indentidad=true
            this.HasKey(so => so.Id);
            this.Property(so => so.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            //propiedades
            this.Property(so => so.Apellidos)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.CentroTrabajo)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.Direccion)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.Dni)
                .HasColumnType("char")
                .HasMaxLength(8)
                .IsRequired();
            this.Property(so => so.Email)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsOptional();
            this.Property(so => so.FechIngreso)
                .HasColumnType("datetime2")
                .IsRequired();
            this.Property(so => so.FechNacimiento)
                .HasColumnType("datetime2")
                .IsRequired();
            this.Property(so => so.FechRetiro)
                .HasColumnType("datetime2")
                .IsRequired();
            this.Property(so => so.LugarNacimiento)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.Nombres)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.NroHijos)
                .HasColumnType("char")
                .HasMaxLength(2)
                .IsRequired();
            this.Property(so => so.Ocupacion)
                .HasColumnType("varchar")
                .HasMaxLength(50)
                .IsRequired();
            this.Property(so => so.Telefono)
                .HasColumnType("varchar")
                .HasMaxLength(11)
                .IsRequired();
        }
    }
}
